package wiki.zimo.certificate_manage.domain;

import cn.afterturn.easypoi.excel.annotation.Excel;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;
/**
 *
 * @author 子墨
 * @date 2018/10/9 17:03
 * @describe 学生获奖信息实体类
 */
@Entity
@Table(name = "student_prize_info", schema = "certificate", catalog = "")
public class StudentPrizeInfo {
    @Excel(name = "id" ,orderNum = "0")
    private String id;
    private String stuId;// 属于哪个学生
    private String teacherId;// 辅导员
    @Excel(name = "学生姓名" ,orderNum = "1")
    private String stuName;
    @Excel(name = "所属班级" ,orderNum = "2")
    private String stuClass;
    @Excel(name = "所学专业" ,orderNum = "3")
    private String stuMajor;
    @Excel(name = "所属二级学院" ,orderNum = "4")
    private String stuSchool;
    @Excel(name = "证书类型" ,orderNum = "5")
    private String certificateType;
    @Excel(name = "指导教师" ,orderNum = "6")
    private String leadTeacher;
    @Excel(name = "获奖时间", format = "yyyy-MM" ,orderNum = "7")
    private Timestamp prizeTime;
    @Excel(name = "奖项名称" ,orderNum = "8")
    private String prizeName;
    @Excel(name = "获奖等级" ,orderNum = "9")
    private String prizeGrade;
    @Excel(name = "获奖级别" ,orderNum = "10")
    private String prizeLevel;
    @Excel(name = "获奖详情" ,orderNum = "11")
    private String prizeDetails;
    @Excel(name = "上传时间" ,format = "yyyy-MM-dd HH:mm:ss",orderNum = "12")
    private Timestamp reportTime;
    @Excel(name = "审核状态" ,orderNum = "13")
    private String auditingStatus;
    @Excel(name = "审核时间" ,format = "yyyy-MM-dd HH:mm:ss",orderNum = "14")
    private Timestamp auditingTime;
    @Excel(name = "审核人" ,orderNum = "13")
    private String auditingPeople;
    @Excel(name = "证书图片", type = 2 ,imageType = 1, orderNum = "15")
    private String prizePhoto;

    public StudentPrizeInfo() {
    }

    @Id
    @Column(name = "Id")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "teacher_id")
    public String getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(String teacherId) {
        this.teacherId = teacherId;
    }

    @Basic
    @Column(name = "stu_id")
    public String getStuId() {
        return stuId;
    }

    public void setStuId(String stuId) {
        this.stuId = stuId;
    }

    @Basic
    @Column(name = "stu_name")
    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    @Basic
    @Column(name = "stu_class")
    public String getStuClass() {
        return stuClass;
    }

    public void setStuClass(String stuClass) {
        this.stuClass = stuClass;
    }

    @Basic
    @Column(name = "stu_major")
    public String getStuMajor() {
        return stuMajor;
    }

    public void setStuMajor(String stuMajor) {
        this.stuMajor = stuMajor;
    }

    @Basic
    @Column(name = "stu_school")
    public String getStuSchool() {
        return stuSchool;
    }

    public void setStuSchool(String stuSchool) {
        this.stuSchool = stuSchool;
    }

    @Basic
    @Column(name = "certificate_type")
    public String getCertificateType() {
        return certificateType;
    }

    public void setCertificateType(String certificateType) {
        this.certificateType = certificateType;
    }

    @Basic
    @Column(name = "lead_teacher")
    public String getLeadTeacher() {
        return leadTeacher;
    }

    public void setLeadTeacher(String leadTeacher) {
        this.leadTeacher = leadTeacher;
    }

    @Basic
    @Column(name = "prize_time")
    public Timestamp getPrizeTime() {
        return prizeTime;
    }

    public void setPrizeTime(Timestamp prizeTime) {
        this.prizeTime = prizeTime;
    }

    @Basic
    @Column(name = "prize_name")
    public String getPrizeName() {
        return prizeName;
    }

    public void setPrizeName(String prizeName) {
        this.prizeName = prizeName;
    }

    @Basic
    @Column(name = "prize_grade")
    public String getPrizeGrade() {
        return prizeGrade;
    }

    public void setPrizeGrade(String prizeGrade) {
        this.prizeGrade = prizeGrade;
    }

    @Basic
    @Column(name = "prize_level")
    public String getPrizeLevel() {
        return prizeLevel;
    }

    public void setPrizeLevel(String prizeLevel) {
        this.prizeLevel = prizeLevel;
    }

    @Basic
    @Column(name = "prize_details")
    public String getPrizeDetails() {
        return prizeDetails;
    }

    public void setPrizeDetails(String prizeDetails) {
        this.prizeDetails = prizeDetails;
    }

    @Basic
    @Column(name = "prize_photo")
    public String getPrizePhoto() {
        return prizePhoto;
    }

    public void setPrizePhoto(String prizePhoto) {
        this.prizePhoto = prizePhoto;
    }

    @Basic
    @Column(name = "report_time")
    public Timestamp getReportTime() {
        return reportTime;
    }

    public void setReportTime(Timestamp reportTime) {
        this.reportTime = reportTime;
    }

    @Basic
    @Column(name = "auditing_status")
    public String getAuditingStatus() {
        return auditingStatus;
    }

    public void setAuditingStatus(String auditingStatus) {
        this.auditingStatus = auditingStatus;
    }

    @Basic
    @Column(name = "auditing_time")
    public Timestamp getAuditingTime() {
        return auditingTime;
    }

    public void setAuditingTime(Timestamp auditingTime) {
        this.auditingTime = auditingTime;
    }

    @Basic
    @Column(name = "auditing_people")
    public String getAuditingPeople() {
        return auditingPeople;
    }

    public void setAuditingPeople(String auditingPeople) {
        this.auditingPeople = auditingPeople;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        StudentPrizeInfo that = (StudentPrizeInfo) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(stuId, that.stuId) &&
                Objects.equals(stuName, that.stuName) &&
                Objects.equals(stuClass, that.stuClass) &&
                Objects.equals(stuMajor, that.stuMajor) &&
                Objects.equals(stuSchool, that.stuSchool) &&
                Objects.equals(certificateType, that.certificateType) &&
                Objects.equals(leadTeacher, that.leadTeacher) &&
                Objects.equals(prizeTime, that.prizeTime) &&
                Objects.equals(prizeName, that.prizeName) &&
                Objects.equals(prizeGrade, that.prizeGrade) &&
                Objects.equals(prizeLevel, that.prizeLevel) &&
                Objects.equals(prizeDetails, that.prizeDetails) &&
                Objects.equals(prizePhoto, that.prizePhoto) &&
                Objects.equals(reportTime, that.reportTime) &&
                Objects.equals(auditingStatus, that.auditingStatus) &&
                Objects.equals(auditingTime, that.auditingTime) &&
                Objects.equals(auditingPeople, that.auditingPeople);
    }

    @Override
    public int hashCode() {

        return Objects.hash(id, stuId, stuName, stuClass, stuMajor, stuSchool, certificateType, leadTeacher, prizeTime, prizeName, prizeGrade, prizeLevel, prizeDetails, prizePhoto, reportTime, auditingStatus, auditingTime, auditingPeople);
    }

    @Override
    public String toString() {
        return "StudentPrizeInfo{" +
                "id='" + id + '\'' +
                ", stuId='" + stuId + '\'' +
                ", stuName='" + stuName + '\'' +
                ", stuClass='" + stuClass + '\'' +
                ", stuMajor='" + stuMajor + '\'' +
                ", stuSchool='" + stuSchool + '\'' +
                ", certificateType='" + certificateType + '\'' +
                ", leadTeacher='" + leadTeacher + '\'' +
                ", prizeTime=" + prizeTime +
                ", prizeName='" + prizeName + '\'' +
                ", prizeGrade='" + prizeGrade + '\'' +
                ", prizeLevel='" + prizeLevel + '\'' +
                ", prizeDetails='" + prizeDetails + '\'' +
                ", prizePhoto='" + prizePhoto + '\'' +
                ", reportTime=" + reportTime +
                ", auditingStatus='" + auditingStatus + '\'' +
                ", auditingTime=" + auditingTime +
                ", auditingPeople='" + auditingPeople + '\'' +
                '}';
    }
}
